﻿using System;
using System.Collections.Generic;
using Nb.Schedules.Libs.Domains;

namespace Nb.Schedules.Libs.Applications.Abstracts
{
    public interface IClassroomScheduleAppService
    {
        ClassroomSchedule GetByClassroomId(Guid classroomId);
        void CreateEmpty(Guid classroomId);
        void AddItem(AddItemParams addItemParams);
        void RemoveItem(Guid itemId);

        void CreateFromScheduleTemplate(CreateFromScheduleTemplateParams createFromScheduleTemplateParams);
    }

    #region dtos

    public class AddItemParams
    {
        public Guid ClassroomId { get; set; }
        public int SectionNumber { get; set; }
        public string Title { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
    }

    public class CreateFromScheduleTemplateParams
    {
        public Guid ClassroomId { get; set; }
        public Guid TemplateId { get; set; }
    }


    //public class ClassroomScheduleDto
    //{
    //    public Guid Id { get; set; }
    //    public Guid ClassroomId { get; set; }
    //    public IList<ScheduleItemDto> ScheduleItems { get; set; }
    //}

    //public class ScheduleItemDto
    //{
    //    public Guid ClassroomScheduleId { get; set; }
    //    public int SectionNumber { get; set; }
    //    public string Title { get; set; }
    //    public DateTime StartDate { get; set; }
    //    public DateTime EndDate { get; set; }
    //}

    #endregion
}
